// Learn cc.Class:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/class.html
//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/class.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html

cc.Class({
    extends: cc.Component,

    properties: {
        CurrentNumber:-1,
        CurrentLocation:'A',
        ClickedLocation:'A',
        ArrayPug: Array(),//---------------------------------足迹，为了避免已知条件在布局上过于集中，最高频率不超过PugNumber分之一。
        PugNumber:20,//---------------------------------------足迹最小周期
        ScaleZoom:false,
    },

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {},

    start () {
    },

    // update (dt) {},

    Formula23:function (p23,pUL,pNode,pDetermineLocation,pNumber,pAffectLocation){
        var vhlu,vimu,vabu,vcu,vdu;
        var vhll,viml,vabl,vcl,vdl;
        var NewBound;
        switch (p23){
            case 2:
            vhlu = pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry;
            vhll = pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry;
            vimu = pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry;
            viml = pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry;
            vabu = pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry;
            vabl = pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry;
            break;
            case 3:
            vhlu = pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry;
            vhll = pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry;
            vimu = pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry;
            viml = pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry;
            vabu = pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry;
            vabl = pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry;
            break;
        default:        
        }
        vcu = pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry;
        vcl = pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry;
        vdu = pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry;
        vdl = pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry;
        switch(pDetermineLocation){
            case 'H':
            vhlu = pNumber;
            vhll = pNumber;
            break;
            case 'L':
            vhlu = pNumber;
            vhll = pNumber;
            break;
            case 'I':
            vimu = pNumber;
            viml = pNumber;
            break;
            case 'M':
            vimu = pNumber;
            viml = pNumber;
            break;
            case 'A':
            vabu = pNumber;
            vabl = pNumber;
            break;
            case 'B':
            vabu = pNumber;
            vabl = pNumber;
            break;
            case 'C':
            vcu = pNumber;
            vcl = pNumber;
            break;
            case 'D':
            vdu = pNumber;
            vdl = pNumber;
            break;
            default:
        }
        switch(pUL){
            case 'U':
            switch(pAffectLocation){
                case 'H':
                NewBound = ( vabu * ( 10 * vcu + vdu ) - viml )/10;
                break;
                case 'L':
                NewBound = ( vabu * ( 10 * vcu + vdu ) - viml )/10;
                break;
                case 'I':
                NewBound = vabu * ( 10 * vcu + vdu ) - 10 * vhll;
                break;
                case 'M':
                NewBound = vabu * ( 10 * vcu + vdu ) - 10 * vhll;
                break;
                case 'A':
                NewBound = ( 10 * vhlu + vimu )/( 10 * vcl + vdl );
                break;
                case 'B':
                NewBound = ( 10 * vhlu + vimu )/( 10 * vcl + vdl );
                break;
                case 'C':
                NewBound = vabl!=0?(( 10 * vhlu + vimu )/ vabl - vdl )/10:9;//避免除数B等于零
                break;
                case 'D':
                NewBound = vabl!=0?( 10 * vhlu + vimu )/ vabl - 10 * vcl:9;
                break;
                default: 
            }
            break;
            case 'L':
            switch(pAffectLocation){
                case 'H':
                NewBound = ( vabl * ( 10 * vcl + vdl ) - vimu )/10;
                break;
                case 'L':
                NewBound = ( vabl * ( 10 * vcl + vdl ) - vimu )/10;
                break;
                case 'I':
                NewBound = vabl * ( 10 * vcl + vdl ) - 10 * vhlu;
                break;
                case 'M':
                NewBound = vabl * ( 10 * vcl + vdl ) - 10 * vhlu;
                break;
                case 'A':
                NewBound = ( 10 * vhll + viml )/( 10 * vcu + vdu );
                break;
                case 'B':
                NewBound = ( 10 * vhll + viml )/( 10 * vcu + vdu );
                break;
                case 'C':
                NewBound = vabl!=0?(( 10 * vhll + viml )/ vabu - vdu )/10:1;
                break;
                case 'D':
                NewBound = vabl!=0?( 10 * vhll + viml )/ vabu - 10 * vcu:0;
                break;
                default: 
            }
            break;
            default:
        }
        return NewBound;
    },

    Formula45:function (p45,pUL,pNode,pDetermineLocation,pNumber,pAffectLocation){
        var veju,vfku,vhlu,vimu,vjnu;
        var vejl,vfkl,vhll,viml,vjnl;
        var NewBound;
        var temp4,temp5;
        switch (p45){
            case 4:
            veju = pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry;
            vejl = pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry;
            vfku = pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry;
            vfkl = pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry;
            vhlu = pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry;
            vhll = pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry;
            vimu = pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry;
            viml = pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry;
            vjnu = pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry;
            vjnl = pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry;
            break;
            case 5:
            veju = pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry;
            vejl = pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry;
            vfku = pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry;
            vfkl = pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry;
            vhlu = pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry;
            vhll = pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry;
            vimu = pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry;
            viml = pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry;
            vjnu = pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry;
            vjnl = pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry;
            break;
        default:        
        }
        switch(pDetermineLocation){
            case 'E':
            veju = pNumber;
            vejl = pNumber;
            break;
            case 'J':
            switch(p45){
                case 4:
                vjnu = pNumber;
                vjnl = pNumber;
                break;
                case 5:
                veju = pNumber;
                vejl = pNumber;
                break;
                default:
            }
            break;
            case 'F':
            vfku = pNumber;
            vfkl = pNumber;
            break;
            case 'K':
            vfku = pNumber;
            vfkl = pNumber;
            break;
            case 'H':
            vhlu = pNumber;
            vhll = pNumber;
            break;
            case 'L':
            vhlu = pNumber;
            vhll = pNumber;
            break;
            case 'I':
            vimu = pNumber;
            viml = pNumber;
            break;
            case 'M':
            vimu = pNumber;
            viml = pNumber;
            break;
            break;
            case 'N':
            vjnu = pNumber;
            vjnl = pNumber;
            break;
            default:
        }
        switch(pUL){
            case 'U':
            switch(pAffectLocation){
                case 'E':
                NewBound = ( 10 * vhlu + vimu + vjnu - vfkl )/10;
                break;
                case 'J':
                temp4 = 10 * veju + vfku - 10 * vhll - viml;
                temp5 = ( 10 * vhlu + vimu + vjnu - vfkl )/10;
                NewBound = p45==4?temp4:temp5;
                break;
                case 'F':
                NewBound = 10 * vhlu + vimu + vjnu - 10 * vejl;
                break;
                case 'K':
                NewBound = 10 * vhlu + vimu + vjnu - 10 * vejl;
                break;
                case 'H':
                NewBound = ( 10 * veju + vfku - viml -vjnl )/10;
                break;
                case 'L':
                NewBound = ( 10 * veju + vfku - viml -vjnl )/10;
                break;
                case 'I':
                NewBound = 10 * veju + vfku - 10 * vhll - vjnl;
                break;
                case 'M':
                NewBound = 10 * veju + vfku - 10 * vhll - vjnl;
                break;
                case 'N':
                NewBound = 10 * veju + vfku - 10 * vhll - viml;
                break;
                default: 
            }
            break;
            case 'L':
            switch(pAffectLocation){
                case 'E':
                NewBound = ( 10 * vhll + viml + vjnl - vfku )/10;
                break;
                case 'J':
                temp4 = 10 * vejl + vfkl - 10 * vhlu - vimu;
                temp5 = ( 10 * vhll + viml + vjnl - vfku )/10;
                NewBound = p45==4?temp4:temp5;
                break;
                case 'F':
                NewBound = 10 * vhll + viml + vjnl - 10 * veju;
                break;
                case 'K':
                NewBound = 10 * vhll + viml + vjnl - 10 * veju;
                break;
                case 'H':
                NewBound = ( 10 * vejl + vfkl - vimu -vjnu )/10;
                break;
                case 'L':
                NewBound = ( 10 * vejl + vfkl - vimu -vjnu )/10;
                break;
                case 'I':
                NewBound = 10 * vejl + vfkl - 10 * vhlu - vjnu;
                break;
                case 'M':
                NewBound = 10 * vejl + vfkl - 10 * vhlu - vjnu;
                break;
                case 'N':
                NewBound = 10 * vejl + vfkl - 10 * vhlu - vimu;
                break;
                default: 
            }
            break;
            default:
        }
        return NewBound;
    },

    Rational23:function (p23,pNode){
        var ArrayChar = new Array(5);
        var ArrayUpper = new Array(5);
        var ArrayLower = new Array(5);
        switch(p23){
            case 2:
            ArrayChar[0] = 'H';
            ArrayChar[1] = 'I';
            ArrayChar[2] = 'A';
            ArrayChar[3] = 'C';
            ArrayChar[4] = 'D';
            break;
            case 3:
            ArrayChar[0] = 'L';
            ArrayChar[1] = 'M';
            ArrayChar[2] = 'B';
            ArrayChar[3] = 'C';
            ArrayChar[4] = 'D';
            break;
            default:
        }
        for(i=0; i<5; i++){
            ArrayUpper[i] = pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperTry;
            ArrayLower[i] = pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerTry;
        }
        for(var v=ArrayLower[0]; v<=ArrayUpper[0]; v++){
            for(var w=ArrayLower[1]; w<=ArrayUpper[1];w++){
                for(var x=ArrayLower[2]; x<=ArrayUpper[2]; x++){
                    for(var y=ArrayLower[3]; y<=ArrayUpper[3]; y++){
                        for(var z=ArrayLower[4]; z<=ArrayUpper[4]; z++){
                            if(10*v+w == x*(10*y+z)){
                                return true;//-----------------------整除了
                            }
                        }
                    }
                }
            }
        }
        return false;
    },

    Rational45:function (p45,pNode){
        var ArrayChar = new Array(5);
        var ArrayUpper = new Array(5);
        var ArrayLower = new Array(5);
        switch(p45){
            case 4:
            ArrayChar[0] = 'E';
            ArrayChar[1] = 'F';
            ArrayChar[2] = 'H';
            ArrayChar[3] = 'I';
            ArrayChar[4] = 'J';
            break;
            case 5:
            ArrayChar[0] = 'J';
            ArrayChar[1] = 'K';
            ArrayChar[2] = 'L';
            ArrayChar[3] = 'M';
            ArrayChar[4] = 'N';
            break;
            default:
        }
        for(i=0; i<5; i++){
            ArrayUpper[i] = pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperTry;
            ArrayLower[i] = pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerTry;
        }
        for(var v=ArrayLower[0]; v<=ArrayUpper[0]; v++){
            for(var w=ArrayLower[1]; w<=ArrayUpper[1];w++){
                for(var x=ArrayLower[2]; x<=ArrayUpper[2]; x++){
                    for(var y=ArrayLower[3]; y<=ArrayUpper[3]; y++){
                        for(var z=ArrayLower[4]; z<=ArrayUpper[4]; z++){
                            if(10 * v + w == 10 * x + y + z){
                                return true;//-----------------------整除了
                            }
                        }
                    }
                }
            }
        }
        return false;
    },

    RationalConfirm:function (pNode){
        var ArrayChar = new Array(14);
        var ArrayConfirm = new Array(14);
        ArrayChar[0] = 'A';
        ArrayChar[1] = 'B';
        ArrayChar[2] = 'C';
        ArrayChar[3] = 'D';
        ArrayChar[4] = 'E';
        ArrayChar[5] = 'F';
        ArrayChar[6] = 'G';
        ArrayChar[7] = 'H';
        ArrayChar[8] = 'I';
        ArrayChar[9] = 'J';
        ArrayChar[10] = 'K';
        ArrayChar[11] = 'L';
        ArrayChar[12] = 'M';
        ArrayChar[13] = 'N';
        for(i=0; i<14; i++){
            ArrayConfirm[i] = pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperTry;
        }
        if(10 * ArrayConfirm[7] + ArrayConfirm[8] == ArrayConfirm[0] * (10 * ArrayConfirm[2] + ArrayConfirm[3])){
            if(10 * ArrayConfirm[11] + ArrayConfirm[12] == ArrayConfirm[1] * (10 * ArrayConfirm[2] + ArrayConfirm[3])){
                if(10 * ArrayConfirm[4] + ArrayConfirm[5] == 10 * ArrayConfirm[7] + ArrayConfirm[8] + ArrayConfirm[9]){
                    if(10 * ArrayConfirm[9] + ArrayConfirm[10] == 10 * ArrayConfirm[11] + ArrayConfirm[12] + ArrayConfirm[13]){
                        return true;//-----------------------整除了
                    }
                }
            }
        }
        return false;
    },

    Match:function (pNode,pLocation,pNumber) {
        var UpperTryA, LowerTryA;
        var UpperTryB, LowerTryB;
        var UpperTryC, LowerTryC;
        var UpperTryD, LowerTryD;
        var UpperTryE, LowerTryE;
        var UpperTryF, LowerTryF;
        var UpperTryG, LowerTryG;
        var UpperTryH, LowerTryH;
        var UpperTryI, LowerTryI;
        var UpperTryJ, LowerTryJ;
        var UpperTryK, LowerTryK;
        var UpperTryL, LowerTryL;
        var UpperTryM, LowerTryM;
        var UpperTryN, LowerTryN;
        var temp1, temp2;
        var NewMatched = true;
        var BoundChanged = true;
        var ArrayChar = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N');//14个位置
        while(BoundChanged){
            BoundChanged = false;
            switch(pLocation) {
                case 'A':
                pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryH = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'H'));
                    LowerTryH = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'H'));
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryI = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'I'));
                    LowerTryI = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'I'));
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryC = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'C'));
                    LowerTryC = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'C'));
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryD = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'D'));
                    LowerTryD = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'D'));
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonA').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonA').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                }
                break;
                case 'B':
                pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryL = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'L'));
                    LowerTryL = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'L'));
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryM = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'M'));
                    LowerTryM = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'M'));
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryC = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'C'));
                    LowerTryC = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'C'));
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryD = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'D'));
                    LowerTryD = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'D'));
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonB').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonB').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                }
                break;
                case 'C':
                pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryH = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'H'));
                    LowerTryH = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'H'));
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryI = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'I'));
                    LowerTryI = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'I'));
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryA = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'A'));
                    LowerTryA = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'A'));
                    if(pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){//A已经匹配
                        if(UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ||
                        LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    temp1 = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'D'));
                    temp2 = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'D'));
                    UpperTryD = temp1<temp2?temp1:temp2;
                    temp1 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'D'));
                    temp2 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'D'));
                    LowerTryD = temp1>temp2?temp1:temp2;
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryL = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'L'));
                    LowerTryL = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'L'));
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryM = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'M'));
                    LowerTryM = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'M'));
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryB = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'B'));
                    LowerTryB = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'B'));
                    if(pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){//B已经匹配
                        if(UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ||
                        LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry = UpperTryA;
                        BoundChanged = true;
                    }
                    if ( LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry = LowerTryA;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry = UpperTryB;
                        BoundChanged = true;
                    }
                    if ( LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry = LowerTryB;
                        BoundChanged = true;
                    }
                }
                break;
                case 'D':
                pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryH = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'H'));
                    LowerTryH = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'H'));
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryI = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'I'));
                    LowerTryI = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'I'));
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryA = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'A'));
                    LowerTryA = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'A'));
                    if(pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){//A已经匹配
                        if(UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ||
                        LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    temp1 = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'C'));
                    temp2 = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'C'));
                    UpperTryC = temp1<temp2?temp1:temp2;
                    temp1 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'C'));
                    temp2 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'C'));
                    LowerTryC = temp1>temp2?temp1:temp2;
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryL = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'L'));
                    LowerTryL = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'L'));
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryM = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'M'));
                    LowerTryM = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'M'));
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryB = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'B'));
                    LowerTryB = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'B'));
                    if(pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){//B已经匹配
                        if(UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ||
                        LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry = UpperTryA;
                        BoundChanged = true;
                    }
                    if ( LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry = LowerTryA;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry = UpperTryB;
                        BoundChanged = true;
                    }
                    if ( LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry = LowerTryB;
                        BoundChanged = true;
                    }
                }
                break;
                case 'E':
                pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryF = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'F'));
                    LowerTryF = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'F'));
                    if(pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){//F已经匹配
                        if(UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ||
                        LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryH = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'H'));
                    LowerTryH = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'H'));
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryI = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'I'));
                    LowerTryI = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'I'));
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonE').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonE').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry = UpperTryF;
                        BoundChanged = true;
                    }
                    if ( LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry = LowerTryF;
                        BoundChanged = true;
                    }
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                }
                break;
                case 'F':
                pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryE = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'E'));
                    LowerTryE = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'E'));
                    if(pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){//E已经匹配
                        if(UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ||
                        LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryH = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'H'));
                    LowerTryH = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'H'));
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryI = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'I'));
                    LowerTryI = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'I'));
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonF').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonF').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry = UpperTryE;
                        BoundChanged = true;
                    }
                    if ( LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry = LowerTryE;
                        BoundChanged = true;
                    }
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                }
                break;
                case 'G':
                pNode.getChildByName('ButtonG').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonG').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryK = pNumber;//K的上界
                    LowerTryK = pNumber;//K的下界
                    if(pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){//K已经匹配
                        if(UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ||
                        LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(!NewMatched){
                    pNode.getChildByName('ButtonG').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonG').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry = UpperTryK;
                        BoundChanged = true;
                    }
                    if ( LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry = LowerTryK;
                        BoundChanged = true;
                    }
                }
                break;
                case 'H':
                pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    temp1 = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'I'));
                    temp2 = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'I'));
                    UpperTryI = temp1<temp2?temp1:temp2;
                    temp1 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'I'));
                    temp2 = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'I'));
                    LowerTryI = temp1>temp2?temp1:temp2;
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryA = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'A'));
                    LowerTryA = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'A'));
                    if(pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){//A已经匹配
                        if(UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ||
                        LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryC = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'C'));
                    LowerTryC = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'C'));
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryD = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'D'));
                    LowerTryD = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'D'));
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryE = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'E'));
                    LowerTryE = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'E'));
                    if(pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){//E已经匹配
                        if(UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ||
                        LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryF = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'F'));
                    LowerTryF = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'F'));
                    if(pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){//F已经匹配
                        if(UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ||
                        LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry = UpperTryA;
                        BoundChanged = true;
                    }
                    if ( LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry = LowerTryA;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                    if ( UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry = UpperTryE;
                        BoundChanged = true;
                    }
                    if ( LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry = LowerTryE;
                        BoundChanged = true;
                    }
                    if ( UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry = UpperTryF;
                        BoundChanged = true;
                    }
                    if ( LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry = LowerTryF;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                }
                break;
                case 'I':
                pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    temp1 = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'H'));
                    temp2 = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'H'));
                    UpperTryH = temp1<temp2?temp1:temp2;
                    temp1 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'H'));
                    temp2 = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'H'));
                    LowerTryH = temp1>temp2?temp1:temp2;
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryA = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'A'));
                    LowerTryA = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'A'));
                    if(pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){//A已经匹配
                        if(UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperBound ||
                        LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryC = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'C'));
                    LowerTryC = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'C'));
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryD = Math.floor(pNode.getComponent('CanvasScript').Formula23(2,'U',pNode,pLocation,pNumber,'D'));
                    LowerTryD = Math.ceil(pNode.getComponent('CanvasScript').Formula23(2,'L',pNode,pLocation,pNumber,'D'));
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryE = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'E'));
                    LowerTryE = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'E'));
                    if(pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){//E已经匹配
                        if(UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ||
                        LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryF = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'F'));
                    LowerTryF = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'F'));
                    if(pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){//F已经匹配
                        if(UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ||
                        LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryA < pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').UpperTry = UpperTryA;
                        BoundChanged = true;
                    }
                    if ( LowerTryA > pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonA').getComponent('ButtonScript').LowerTry = LowerTryA;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                    if ( UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry = UpperTryE;
                        BoundChanged = true;
                    }
                    if ( LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry = LowerTryE;
                        BoundChanged = true;
                    }
                    if ( UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry = UpperTryF;
                        BoundChanged = true;
                    }
                    if ( LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry = LowerTryF;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                }
                break;
                case 'J':
                pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryE = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'E'));
                    LowerTryE = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'E'));
                    if(pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){//E已经匹配
                        if(UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperBound ||
                        LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryF = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'F'));
                    LowerTryF = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'F'));
                    if(pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){//F已经匹配
                        if(UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperBound ||
                        LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryH = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'H'));
                    LowerTryH = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'H'));
                    if(pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){//H已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryI = Math.floor(pNode.getComponent('CanvasScript').Formula45(4,'U',pNode,pLocation,pNumber,'I'));
                    LowerTryI = Math.ceil(pNode.getComponent('CanvasScript').Formula45(4,'L',pNode,pLocation,pNumber,'I'));
                    if(pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){//I已经匹配
                        if(UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperBound ||
                        LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryK = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'K'));
                    LowerTryK = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'K'));
                    if(pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){//K已经匹配
                        if(UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ||
                        LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryL = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'L'));
                    LowerTryL = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'L'));
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryM = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'M'));
                    LowerTryM = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'M'));
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryN = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'N'));
                    LowerTryN = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'N'));
                    if(pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){//N已经匹配
                        if(UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ||
                        LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryE < pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').UpperTry = UpperTryE;
                        BoundChanged = true;
                    }
                    if ( LowerTryE > pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonE').getComponent('ButtonScript').LowerTry = LowerTryE;
                        BoundChanged = true;
                    }
                    if ( UpperTryF < pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').UpperTry = UpperTryF;
                        BoundChanged = true;
                    }
                    if ( LowerTryF > pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonF').getComponent('ButtonScript').LowerTry = LowerTryF;
                        BoundChanged = true;
                    }
                    if ( UpperTryH < pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').UpperTry = UpperTryH;
                        BoundChanged = true;
                    }
                    if ( LowerTryH > pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonH').getComponent('ButtonScript').LowerTry = LowerTryH;
                        BoundChanged = true;
                    }
                    if ( UpperTryI < pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').UpperTry = UpperTryI;
                        BoundChanged = true;
                    }
                    if ( LowerTryI > pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonI').getComponent('ButtonScript').LowerTry = LowerTryI;
                        BoundChanged = true;
                    }
                    if ( UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry = UpperTryK;
                        BoundChanged = true;
                    }
                    if ( LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry = LowerTryK;
                        BoundChanged = true;
                    }
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry = UpperTryN;
                        BoundChanged = true;
                    }
                    if ( LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry = LowerTryN;
                        BoundChanged = true;
                    }
                }
                break;
                case 'K':
                pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryG = pNumber;//G的上界
                    LowerTryG = pNumber;//G的下界
                    if(pNode.getChildByName('ButtonG').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonG').getComponent('ButtonScript').LowerBound){//G已经匹配
                        if(UpperTryG < pNode.getChildByName('ButtonG').getComponent('ButtonScript').UpperBound ||
                        LowerTryG > pNode.getChildByName('ButtonG').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryL = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'L'));
                    LowerTryL = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'L'));
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryM = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'M'));
                    LowerTryM = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'M'));
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryN = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'N'));
                    LowerTryN = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'N'));
                    if(pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){//N已经匹配
                        if(UpperTryH < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ||
                        LowerTryH > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryG < pNode.getChildByName('ButtonG').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonG').getComponent('ButtonScript').UpperTry = UpperTryG;
                        BoundChanged = true;
                    }
                    if ( LowerTryG > pNode.getChildByName('ButtonG').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonG').getComponent('ButtonScript').LowerTry = LowerTryG;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry = UpperTryN;
                        BoundChanged = true;
                    }
                    if ( LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry = LowerTryN;
                        BoundChanged = true;
                    }
                }
                break;
                case 'L':
                pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    temp1 = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'M'));
                    temp2 = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'M'));
                    UpperTryM = temp1<temp2?temp1:temp2;
                    temp1 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'M'));
                    temp2 = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'M'));
                    LowerTryM = temp1>temp2?temp1:temp2;
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryB = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'B'));
                    LowerTryB = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'B'));
                    if(pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){//B已经匹配
                        if(UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ||
                        LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryC = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'C'));
                    LowerTryC = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'C'));
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryD = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'D'));
                    LowerTryD = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'D'));
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryK = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'K'));
                    LowerTryK = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'K'));
                    if(pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){//K已经匹配
                        if(UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ||
                        LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryN = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'N'));
                    LowerTryN = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'N'));
                    if(pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){//N已经匹配
                        if(UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ||
                        LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry = UpperTryB;
                        BoundChanged = true;
                    }
                    if ( LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry = LowerTryB;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                    if ( UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry = UpperTryK;
                        BoundChanged = true;
                    }
                    if ( LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry = LowerTryK;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                    if ( UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry = UpperTryN;
                        BoundChanged = true;
                    }
                    if ( LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry = LowerTryN;
                        BoundChanged = true;
                    }
                }
                break;
                case 'M':
                pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    temp1 = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'L'));
                    temp2 = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'L'));
                    UpperTryL = temp1<temp2?temp1:temp2;
                    temp1 = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'L'));
                    temp2 = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'L'));
                    LowerTryL = temp1>temp2?temp1:temp2;
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryB = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'B'));
                    LowerTryB = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'B'));
                    if(pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){//B已经匹配
                        if(UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperBound ||
                        LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryC = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'C'));
                    LowerTryC = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'C'));
                    if(pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){//C已经匹配
                        if(UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperBound ||
                        LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryD = Math.floor(pNode.getComponent('CanvasScript').Formula23(3,'U',pNode,pLocation,pNumber,'D'));
                    LowerTryD = Math.ceil(pNode.getComponent('CanvasScript').Formula23(3,'L',pNode,pLocation,pNumber,'D'));
                    if(pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){//D已经匹配
                        if(UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperBound ||
                        LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryK = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'K'));
                    LowerTryK = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'K'));
                    if(pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){//K已经匹配
                        if(UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ||
                        LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryN = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'N'));
                    LowerTryN = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'N'));
                    if(pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){//N已经匹配
                        if(UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperBound ||
                        LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryB < pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').UpperTry = UpperTryB;
                        BoundChanged = true;
                    }
                    if ( LowerTryB > pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonB').getComponent('ButtonScript').LowerTry = LowerTryB;
                        BoundChanged = true;
                    }
                    if ( UpperTryC < pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').UpperTry = UpperTryC;
                        BoundChanged = true;
                    }
                    if ( LowerTryC > pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonC').getComponent('ButtonScript').LowerTry = LowerTryC;
                        BoundChanged = true;
                    }
                    if ( UpperTryD < pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').UpperTry = UpperTryD;
                        BoundChanged = true;
                    }
                    if ( LowerTryD > pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonD').getComponent('ButtonScript').LowerTry = LowerTryD;
                        BoundChanged = true;
                    }
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                    if ( UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry = UpperTryK;
                        BoundChanged = true;
                    }
                    if ( LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry = LowerTryK;
                        BoundChanged = true;
                    }
                    if ( UpperTryN < pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry = UpperTryN;
                        BoundChanged = true;
                    }
                    if ( LowerTryN > pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry = LowerTryN;
                        BoundChanged = true;
                    }
                }
                break;
                case 'N':
                pNode.getChildByName('ButtonN').getComponent('ButtonScript').UpperTry = pNumber;
                pNode.getChildByName('ButtonN').getComponent('ButtonScript').LowerTry = pNumber;
                if(NewMatched){
                    UpperTryJ = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'J'));
                    LowerTryJ = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'J'));
                    if(pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){//J已经匹配
                        if(UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperBound ||
                        LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryK = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'K'));
                    LowerTryK = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'K'));
                    if(pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){//K已经匹配
                        if(UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperBound ||
                        LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryL = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'L'));
                    LowerTryL = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'L'));
                    if(pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){//L已经匹配
                        if(UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperBound ||
                        LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if(NewMatched){
                    UpperTryM = Math.floor(pNode.getComponent('CanvasScript').Formula45(5,'U',pNode,pLocation,pNumber,'M'));
                    LowerTryM = Math.ceil(pNode.getComponent('CanvasScript').Formula45(5,'L',pNode,pLocation,pNumber,'M'));
                    if(pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ==
                    pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){//M已经匹配
                        if(UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperBound ||
                        LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerBound){
                            NewMatched = false;
                        }
                    }
                }
                if (!NewMatched) {
                    pNode.getChildByName('ButtonN').getComponent('ButtonScript').Matched = false;
                }
                else
                {
                    pNode.getChildByName('ButtonN').getComponent('ButtonScript').Matched = true;
                    if ( UpperTryJ < pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').UpperTry = UpperTryJ;
                        BoundChanged = true;
                    }
                    if ( LowerTryJ > pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonJ').getComponent('ButtonScript').LowerTry = LowerTryJ;
                        BoundChanged = true;
                    }
                    if ( UpperTryK < pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').UpperTry = UpperTryK;
                        BoundChanged = true;
                    }
                    if ( LowerTryK > pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonK').getComponent('ButtonScript').LowerTry = LowerTryK;
                        BoundChanged = true;
                    }
                    if ( UpperTryL < pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').UpperTry = UpperTryL;
                        BoundChanged = true;
                    }
                    if ( LowerTryL > pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonL').getComponent('ButtonScript').LowerTry = LowerTryL;
                        BoundChanged = true;
                    }
                    if ( UpperTryM < pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').UpperTry = UpperTryM;
                        BoundChanged = true;
                    }
                    if ( LowerTryM > pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry) {
                        pNode.getChildByName('ButtonM').getComponent('ButtonScript').LowerTry = LowerTryM;
                        BoundChanged = true;
                    }
                }
                break;
                default:
            }
        }
        if(NewMatched){
            switch(pLocation){
                case 'A':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(2,pNode);//--------------LowerTry和UpperTry之间是不存在整数等式/
                break;
                case 'B':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(3,pNode);
                break;
                case 'C':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(2,pNode) && pNode.getComponent('CanvasScript').Rational23(3,pNode);
                break;
                case 'D':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(2,pNode) && pNode.getComponent('CanvasScript').Rational23(3,pNode);
                break;
                case 'E':
                NewMatched = pNode.getComponent('CanvasScript').Rational45(4,pNode);
                break;
                case 'F':
                NewMatched = pNode.getComponent('CanvasScript').Rational45(4,pNode);
                break;
                case 'G':
                break;
                case 'H':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(2,pNode) && pNode.getComponent('CanvasScript').Rational45(4,pNode);
                break;
                case 'I':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(2,pNode) && pNode.getComponent('CanvasScript').Rational45(4,pNode);
                break;
                case 'J':
                NewMatched = pNode.getComponent('CanvasScript').Rational45(4,pNode) && pNode.getComponent('CanvasScript').Rational45(5,pNode);
                break;
                case 'K':
                NewMatched = pNode.getComponent('CanvasScript').Rational45(5,pNode);
                break;
                case 'L':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(3,pNode) && pNode.getComponent('CanvasScript').Rational45(5,pNode);
                break;
                case 'M':
                NewMatched = pNode.getComponent('CanvasScript').Rational23(3,pNode) && pNode.getComponent('CanvasScript').Rational45(5,pNode);
                break;
                case 'N':
                NewMatched = pNode.getComponent('CanvasScript').Rational45(5,pNode);
                break;
                default:
            }
        }
        if(NewMatched){
            for(i=0;i<14;i++){
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperBound =
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperTry;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerBound =
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerTry;
            }
        }
        else
        {
            for(i=0;i<14;i++){
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperTry =
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperBound;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerTry =
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerBound;
            }
        }
        return NewMatched;
    },

    SetKnownCondition:function(pNode){
        var ready;
        var UpperTry,LowerTry;
        var random = 0,count;
        var ArrayChar = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N');//14个位置
        var WaitForMatch;
        var locate,KnownCondition;
        var Matched;
        var ArrayTried = new Array(10);//--------------------------------已经试过i(当前元素序号)不能匹配
        var TryLocate,TryRemaining;
        var DeadEnd = true;//-------------------------------------------当前匹配过程走进了死胡同。从头再来。
        var CurrentPug,PugRepeat;
        while(DeadEnd){
            WaitForMatch = 14;
            for(i=0;i<14;i++){
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').CurrentNumber = -1;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperTry = 9;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerTry = i==0||i==2||i==4||i==7?1:0;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').UpperBound = 9;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').LowerBound = i==0||i==2||i==4||i==7?1:0;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').Matched = false;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').KnownCondition = false;
                pNode.getChildByName('Button'+ArrayChar[i]).getChildByName('Label'+ArrayChar[i]).getComponent(cc.Label).string = '';
            }
            ready = false;
            while(!ready){
                PugRepeat = true;
                while(PugRepeat){//-----------------------------------找出一个布局不重复的位置
                    random = Math.ceil(Math.random() * WaitForMatch);
                    random = random>0?random:1;
                    count = random;//--------------------------------------在待匹配的位置中选中了第count个
                    locate = -1;
                    while(count>0){//------------------------------------------找第locate个待匹配的位置
                        count--;
                        locate++;
                        while(pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').Matched){
                            locate++;
                        }//----------------------------------------------------找到了第locate个待匹配的位置
                    }//--------------------------------------------------------找到了第count个待匹配的位置
                    UpperTry = pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').UpperTry;
                    LowerTry = pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').LowerTry;
                    if(UpperTry == LowerTry){//--上下限相等
                        Matched = pNode.getComponent('CanvasScript').Match(pNode,ArrayChar[locate],UpperTry);
                        if(Matched){
                            WaitForMatch--;
                        }
                        else
                        {
                            DeadEnd = true;//----------------------------------是死胡同
                        }
                        break;
                    }
                    CurrentPug = 0;
                    for(var i=0;i<14;i++){//-------------------------------------计算出当前布局
                        CurrentPug = CurrentPug + CurrentPug + pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').KnownCondition;
                    }
                    CurrentPug += 2**(13-locate);
                    PugRepeat = pNode.getComponent('CanvasScript').ArrayPug.includes(CurrentPug);
                    PugRepeat = PugRepeat || Math.floor(CurrentPug/1024)==15?true:false;//----------------除数和商不同时已知
                    PugRepeat = PugRepeat || Math.floor(CurrentPug%4096/128)==31?true:false;//--------除数和被除数不同时已知
                }
                if(UpperTry>LowerTry){//-------------------------------locate指向的位置的可用数据不唯一
                    Matched = false;
                    for(var i=LowerTry; i<=UpperTry; i++){
                        ArrayTried[i] = false;
                    }
                    TryRemaining = UpperTry - LowerTry + 1;
                    while(!Matched && TryRemaining > 0){
                        random = Math.ceil(Math.random() * (TryRemaining));//-------------在上下界之间随机产生一个数
                        random = random>0?random:1;
                        count = random;
                        TryLocate = LowerTry-1;
                        while(count>0){
                            count--;
                            TryLocate++;
                            while(ArrayTried[TryLocate]){//--------------------------已经试过了，i(当前元素序号)不匹配。
                                TryLocate++;
                            }
                        }
                        Matched = pNode.getComponent('CanvasScript').Match(pNode,ArrayChar[locate],TryLocate);//确认这个刚产生的随机数是否匹配
                        if(Matched){
                            pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').CurrentNumber = TryLocate;
                            pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').UpperTry = TryLocate;
                            pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').LowerTry = TryLocate;
                            pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').UpperBound = TryLocate;
                            pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').LowerBound = TryLocate;
                            DeadEnd = false;//----------------------------------不是死胡同
                        }
                        else
                        {
                            DeadEnd = true;//----------------------------------是死胡同
                            ArrayTried[TryLocate] = true;//--------------------TryLocate这个数试过了，不匹配。
                            TryRemaining--;
                        }
                    }
                    if(TryRemaining > 0){//-------------------找到了匹配值
                        pNode.getChildByName('Button'+ArrayChar[locate]).getComponent('ButtonScript').KnownCondition = true;
                        WaitForMatch--;
                    }
                    else
                    {//---------------------------------------可能的数都找遍了，没找到匹配值。
                        break;
                    }
                }
                ready = true;            //------------------------------------判断是否全匹配完
                for(i=0;i<14;i++){
                    if(!pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').Matched){
                        ready = false;
                        break;
                    }
                }            //------------------------------------判断是否全匹配完
                ready = ready || DeadEnd;
            }
            DeadEnd = DeadEnd || !pNode.getComponent('CanvasScript').RationalConfirm(pNode);//-------确认没有走进死胡同
        }
        //----------------------------------------匹配完成，去掉必选点，只保留已知条件。
        for(i=0;i<14;i++){
            if(!pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').KnownCondition){
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').Matched = false;
                pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').CurrentNumber = -1;
            }
            else
            {
                pNode.getChildByName('Button'+ArrayChar[i]).getChildByName('BlueButton'+ArrayChar[i]).opacity = 255;
                pNode.getChildByName('Button'+ArrayChar[i]).getChildByName('Label'+ArrayChar[i]).getComponent(cc.Label).string =
                String(pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').CurrentNumber);
            }
        }//----------------------------------------匹配完成，去掉必选点，只保留已知条件。
        CurrentPug = 0;
        for(var i=0;i<14;i++){//-------------------------------------计算出新的布局
            CurrentPug = CurrentPug + CurrentPug + pNode.getChildByName('Button'+ArrayChar[i]).getComponent('ButtonScript').KnownCondition;
        }
        pNode.getComponent('CanvasScript').ArrayPug.push(CurrentPug);
        if(pNode.getComponent('CanvasScript').ArrayPug.length>=pNode.getComponent('CanvasScript').PugNumber){//-------足迹数没有超过最小周期
            pNode.getComponent('CanvasScript').ArrayPug.shift();//----------------------------------------------------删除最旧的足迹
        }

    }
});